Method for mapping colors between imaging systems and method therefor

ABSTRACT

A method for performing color conversion includes configuring a color transformer to perform black point scaling when converting image data from a source device to a destination device. Another method for performing black point adjustment while performing color management conversions includes determining a device independent black reference vector for a device that corresponds to a predetermined set of device dependent values for that device. Converting the device dependent values to device independent data and adjusting the device independent data based on the device independent black reference vector.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Divisional of U.S. application Ser. No. 09/536,366filed Mar. 27, 2000, which is a Continuation of U.S. application Ser.No. 08/882,561 filed Jul. 3, 1997, now U.S. Pat. No. 6,088,038, and is aContinuation-In-Part of U.S. application Ser. No. 08/884,411 filed Jun.27, 1997, now U.S. Pat. No. 6,108,442.

FIELD OF THE INVENTION

The present invention relates to color imaging. More particularly, thepresent invention relates to mapping colors between color imagingsystems.

BACKGROUND OF THE INVENTION

Color reproduction processes typically involve using color imagingsystems to produce colors on various media. These color imaging systemsmay be used to duplicate a color image from one medium to anothermedium, e.g., from one printed copy to another or from a display screento a printed copy. Color reproduction processes are used in variousapplication environments, for example, color proofing applications.

Some color reproduction processes use approaches known as colormanagement systems (CMSs) to characterize various color imaging systemsand to transform color data between the color imaging systems.Characterizing color imaging systems typically involves calculatingcolor response functions using color coordinate systems known as colorspaces. One commonly-used color space is Commission Internationale de l'Éclairage L*a*b; (CIELAB) space. CMSs attempt to reproduce an originalcolor image on a color imaging system so as to preserve the appearanceof colors between the original and the reproduction within thelimitations of the color imaging system of the reproduction process.

Various CMS approaches have been proposed to achieve accurate colorreproduction. Many of these approaches involve producing color samplesusing an output or display device and measuring the color values of thesamples using an input device. Such approaches correlate the outputcolors with the measured color values. This correlation is performedusing, for example, forward and reverse transforms betweendevice-specific color spaces and a device-independent color space. Thesetransformation techniques are often supplemented by interpolationbetween entries in a multidimensional lookup table. These techniquesexhibit inaccurate color conversion between similar devices, potentiallyresulting in undesirable contamination of colors. Furthermore, accuratecolor conversion of dark colors has often been particularly difficultbecause of inadequate processing of black channel data in manyapplications.

CMSs often perform gamut mapping to correlate the range or gamut ofcolors that can be realized by a device with regions of a color space.Because many devices are incapable of realizing the complete range ofcolors in a color space, gamut mapping typically involves compressing orscaling regions of the color space. The device can then approximatecolors outside its gamut using the compressed regions of the colorspace. For many CMSs, gamut mapping is potentially inconsistent undercertain circumstances, such as when using profiles generated by softwarefrom different vendors. In addition, many CMSs exhibit inconsistencieswhen performing forward and reverse transformations between imagingsystems. For example, color shifting often occurs with repeated forwardand reverse transformations.

Many CMS techniques exhibit other limitations in addition to the lack ofaccuracy in converting colors. For example, many CMS techniques arerelatively inflexible with respect to changes in illumination andobserver conditions, gamut mapping, and choice of color space. Certaintechniques lack forward compatibility with future color standards.

BRIEF DESCRIPTION OF THE DRAWINGS

Other aspects and advantages of the present invention will becomeapparent upon reading the following detailed description and uponreference to the drawings in which:

FIG. 1 is a block diagram illustrating an example color mapping system,according to an embodiment of the present invention;

FIG. 2 is a block diagram illustrating an example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 3 is a block diagram illustrating another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 4 is a block diagram illustrating yet another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention;

FIG. 5 is a block diagram illustrating still another example arrangementimplementing part of the color mapping system of FIG. 1, according to anembodiment of the present invention; and

FIG. 6 is a flow chart illustrating an example color mapping method,according to another embodiment of the present invention.

While the invention is amenable to various modifications and alternativeforms, specifics thereof have been shown by way of example in thedrawings and will be described in detail. It should be understood,however, that the intention is not to limit the invention to theparticular embodiments described. On the contrary, the intention is tocover all modifications, equivalents, and alternatives falling withinthe spirit and scope of the invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE VARIOUS EMBODIMENTS

The present invention is believed to be applicable to a variety ofsystems and arrangements that characterize color imaging systems. Theinvention has been found to be particularly advantageous fortransforming colors between different color imaging systems. Anappreciation of various aspects of the invention is best gained througha discussion of these particular application examples.

According to one aspect of the present invention, a color mappingtechnique may be applied to a variety of color imaging systems togenerate a color map that can be used to transform the color response ofone color imaging system, referred to as a source color imaging system,to match the color response of another color imaging system, referred toas a destination color imaging system. The color mapping techniqueprojects color coordinates in the color space used by the source colorimaging system into, for example, a device-independent color space.optimal color coordinates in the color space used by the destinationcolor imaging system are determined that realize a relatively closematch between the projections into the device-independent color space ofthe color coordinates in the color space used by the source colorimaging system and the optimal color coordinates. The color mappingtechnique then generates a color map based on the optimal colorcoordinates for a number of color coordinates in the color space used bythe source color imaging system.

FIG. 1 illustrates an example system 100 according to the presentinvention configured to transform colors between imaging systems. Thesystem 100 includes an appropriately-programmed computer arrangement102. The computer arrangement 102 may be implemented using any of avariety of conventional resources, for example, a personal computer andCD-ROM based software. Other computer-based designs may be used as well.For example, the computer arrangement 102 may be implemented using amicroprocessor that acts as a read-only memory (ROM) into which asoftware application program is loaded. The software application programmay be incorporated, for example, in a color management softwarepackage.

A color mapping system 104 includes a color management system 106. Thecolor management system 106 receives a source device profile 108 and adestination device profile 110. These device profiles describe mappingsfrom device-dependent color coordinate systems used by respective colorimaging systems to device-independent color coordinate systems.

The color management system 106 processes the source device profile 108and the destination device profile 110 to generate a color map 114. Thecolor map 114 describes a relationship between the color imaging systemsused by the source and destination devices. A memory 116 stores thecolor map 114. Subsequently, the color management system 106 uses thecolor map 114 to transform a set of source coordinates 118 in adevice-dependent source device color space into a set of destinationcoordinates 120 in a device-dependent destination device color space.

FIG. 2 illustrates an example color management system 200 fortransforming colors between imaging systems according to the presentinvention. A source device profile interpreter 202 receives a sourcedevice profile 206. The source device profile 206 is used to mapcoordinates in the source device color space to some form of color data,such as spectral or XYZ tristimulus values. For example, if the sourcedevice is a halftone color printer, the source device profile 206 maymap CMYK color values to a XYZ color space. The source device profileinterpreter 202 interprets the source device profile 206 and convertscoordinates in the source device color space to a device-independentcolor space known as a profile connecting space (PCS). The PCS is usedfor converting the coordinates in the source device color space to thedestination device color space. The PCS may be, for example, the CIELABcolor space. Another example PCS is described in co-pending U.S. patentapplication Ser. No. 08/884,411, now U.S. Pat. No. 6,108,442, entitled“Characterization of Color hanging System” (Christopher Edge et al.),filed on Jun. 27, 1997, and incorporated herein by reference.

A destination device profile interpreter 208 receives a destinationdevice profile 210. The destination device profile 210 is used to mapcolor coordinates in a destination device color space used by adestination device 212 to some form of color data, such as spectral orXYZ tristimulus values. For example, if the destination device 212 is acathode ray tube (CRT) monitor, the destination device profile 210 maymap color coordinates in a red-green-blue (RGB) color space to XYZtristimulus values. The destination device profile interpreter 208interprets the destination device profile 210 and converts colorcoordinates in the destination device color space to the PCs.

The source and destination device profile interpreters 202 and 208 maybe implemented using any of a variety of hardware and softwarearrangements and are configurable for a variety of applicationenvironments. For example, if the source and destination device profiles206 and 210 are International Color Consortium (ICC) device profiles,the source and destination device profile interpreters 202 and 208 areoptionally configured to include white- and black-point parameters toaccount for color variations between media and colorants used bydifferent color display devices. The source and destination deviceprofile interpreters 202 and 208 can also be configured to includepleasing color corrections, such as L′ rescaling and a′b′ hueadjustments. Alternatively, the pleasing color corrections can beincorporated into the color transformer 214. In certain otherapplication environments, the source and destination device profileinterpreters 202 and 208 are further configurable to include, forexample, illuminant and observer functions.

The device profile interpreters 202 and 208 can be configured using anyof a variety of approaches. For example, plug-in software modules can beused to configure the device profile interpreters 202 and 208. Usingplug-in software modules obviates the need to use new versions of thecolor management system 200 or of the device profiles 206 and 210 whenadding, for example, a newly defined color space, a custom illuminant,such as fluorescent light, or a new gamut mapping technique. Theseoptions can be selected, e.g., using a setup window at the operatingsystem level. For example, if the operating system is Apple OS version7.5, these options can be selected using a control panel interface.

If the device characterization is non-spectral, the color managementsystem 200 can use the original spectral data that is saved with theprofile to reconstruct the device profiles according to variousconditions, such as illuminant functions and color space choices. Forexample, if one uses an RGB regression to convert scanner RGB valuesinto color space values for a particular combination of color space andilluminant and observer conditions based on a set of spectral data, theregression for a new set of conditions can be generated based on thesame spectral data. Accordingly, the device profiles 206 and 210 can beused to calculate color values for a variety of conditions and colorappearance models

A color transformer 214 obtains PCS color coordinates from the sourceand destination device profile interpreters 202 and 208. The colortransformer 214 uses these color coordinates to develop a color map 216that expresses a relationship between the color spaces used by thesource and destination devices 204 and 212. To generate the color map216, the color transformer 214 may use any of a variety of gamut mappingtechniques. One such technique that has been found to yield particularlyaccurate results involves reducing the color error between the sourceand destination devices. The color error is defined, for example, byEuclidean distances in the PCS or by weighted sum square errors in acolor space that is polar in the chromatic dimensions of the PCS.Defining the color error using weighted sum square errors results in amapping between color imaging systems that accurately maintains colorsin reproduced images. By using error reduction techniques, the colortransformer 214 avoids generating significant cumulative error inperforming multiple forward and reverse transformations between colorspaces.

The color transformer 214 is implemented using, for example, a softwareprogram, and can be configured for a variety of applications. Forexample, the color transformer 214 can be configured to perform a 100%black point scaling for mapping a printed color image to a monitordisplay of the image. On the other hand, because newsprint has arelatively weak black point attributable to its ink density andlight-transmitting properties, the color transformer 214 can beconfigured to perform, for example, a 50% black point scaling whenmapping a color image printed on newsprint to the Matchprint™′ colorimaging system. The color transformer 214 is also configurable to use,for example, illuminant and observer functions, which the colortransformer 214 provides to the source and destination device profileinterpreters 202 and 208. The color management system 200 receives userpreferences from an input 218 to determine how to configure the colortransformer 214.

After developing the color map 216, the color transformer 214 can beused to transform colors between the source and destination devices 204and 212. The color transformer 214 receives color coordinates from thesource device 204 and transforms them using the color map 216. Thistransformation produces a set of color coordinates in the destinationdevice color space. The destination color imaging system then reproducesthe color on the destination device 212 using these color coordinates.

FIG. 3 illustrates an example device profile interpreter 300implementing part of the color management system 200 of FIG. 2. Thedevice profile interpreter 300 uses a device profile 302 to convertdevice coordinates received at an input 304 to PCS color coordinates,which the device profile interpreter 300 provides at an output 306. Thedevice profile 302 describes the relationship between the devicecoordinates and some form of color data. Additionally, the deviceprofile 302 optionally stores the raw spectral data used to constructthe device profile 302. The raw spectral data allows subsequentconstruction of more accurate device profiles 302, e.g., if ICCspecifications change. This updating can be performed automatically, forexample, upon detecting that some component of the device profile 302 isout of date. Updates can also be performed periodically based on aschedule. To update the device profile 302, a new profile can begenerated using the spectral data. Alternatively, error reduction, suchas a one-dimensional correction, can be performed on each channel in theoriginal look-up table for constructing the new profile. This correctioncan be applied as a separate set of one-dimensional tables or applieddirectly to the analytical model or multidimensional look-up table. Foradditional information concerning an example error reduction procedurethat can be used in constructing a new profile, reference can be made toU.S. patent application Ser. No. 08/431,614, entitled “Apparatus andMethod for Recalibrating a Multi-Color Imaging System,” assigned to theinstant assignee and incorporated herein by reference.

A device profile processor 308 receives the device coordinates from theinput 304 and the device profile 302. The device profile 302 may be, forexample, an ICC profile. If the device profile 302 exists in thisformat, the device profile processor receives the forward portion of theprofile, i.e., the portion used for converting device coordinates to PCScolor coordinates. Alternatively, the device profile 302 can be storedin another format. The device profile processor 308 processes the devicecoordinates using the device profile 302 and outputs certain data basedon the device profile 302. For example, if the device profile 302 is anICC profile, the device profile processor 308 outputs XYZ tristimulusvalues for a particular set of observer conditions (e.g., illuminant andobserver functions). if the device profile 302 is based on spectraldata, the device profile processor 308 outputs spectral data. The deviceprofile processor 308 can be configured for a variety of applications.For example, a user can select between absolute and relativecolorimetrics and can configure observer, e.g., illuminant, conditions.

A PCS processor 310 receives the data output from the device profileprocessor 308 and a set of PCS parameters from an input 312. The PCSparameters may include, for example, XYZ tristimulus values for themedia white, the illuminant white, and the black point, as well asblackpoint scaling from a perfect black to the media black. The PCSprocessor 310 generates the PCS values as a function of the datareceived from the device profile processor 308 and the PCS parameters.

FIG. 4 illustrates an example color transformer 400 implementing part ofthe color management system 200 of FIG. 2. A device link generator 402receives as input at least one source profile and one destinationprofile. While FIG. 4 illustrates the device link generator 402receiving a source device profile from a source profile interpreter 404and a destination device profile from a destination profile interpreter406, it should be understood that the device link generator′ 402 mayalso receive one or more device profiles that are intermediate betweenthe source and destination device profiles. For example, a deviceprofile characterizing an RGB monitor can be intermediate between asource device profile characterizing an RGB scanner and a destinationdevice profile characterizing a CMYK printer. The source and destinationdevice profiles are forward transforms and optionally includeconfigurable observer conditions and PCS parameters. The device linkgenerator 402 also receives a series of PCS parameters 408 to improvelinking of different device types (e.g., CRT monitors and printers). Thegamut mapping parameters 410 improve mapping of out of gamut colorsbetween device types.

The device link generator 402 generates a color map or device profilelink 412 that maps colors between two devices, e.g., from an RGB deviceto a CMYK device or between two CMYK devices. The device profile link412 is, for example, a mathematical expression or a look-up table. Thecolor transformer 400 optionally stores the device profile link 412 in amemory, such as a random access memory (RAM), or saves it as a file formultiple transformations between the source and destination device colorspaces.

A device link calculator 414 receives source device coordinates from aninput 416 and processes them using the device profile link 412. Thedevice link calculator 414 uses a single forward calculation totransform the source device coordinates to a set of destination devicecoordinates for presentation at an output 418. Because the device linkcalculator 414 uses a single forward calculation, interpolation isrelatively simple and easily optimized and the transformation process isrelatively fast. If the device profile link 412 is a lookup table, thedevice link calculator 414 optionally uses linear interpolation torefine the destination device coordinates. The device link calculator414 can be implemented, e.g., using a conventional multidimensionallinear interpolator.

FIG. 5 illustrates an example device link generator 500 that implementspart of the color transformer 400 of FIG. 4. The device link generator500 includes a device link table builder 502 that creates a look-uptable to enable rapid interpolation of destination device coordinatesfrom source device coordinates. It should be understood that if thedevice profile link is a mathematical expression rather than as alook-up table, an analogous transformation generator replaces the devicelink table builder 502. Such a transformation builder may, for example,generate coefficients for use in the mathematical expression. Tofacilitate the discussion, however, the device link generator 500 isassumed to include a device link table builder 502. The device linktable builder 502 generates the look-up table by generating a series ofsource device coordinates as input value entries and determining theoptimal destination device coordinates as output values corresponding tothe input values. The device link table builder 502 generates allcombinations of source device coordinates using, for example, a seriesof nested loops, one loop for each dimension of the source device colorcoordinate space.

To reduce the computational and memory requirements for constructing andstoring the look-up table, the look-up table typically contains arelatively small number of entries along each dimension. With arelatively small table, interpolation is used to convert sourcecoordinates to destination coordinates. The total number of entries inthe look-up table can be expressed as D_(d)N_(s) ^(d), where d is thedimensionality of the source device color space, D_(d) is thedimensionality of the destination device color space, and N9 is thenumber of entries along each dimension of the look-up table. Forexample, a look-up table that is used to transform color coordinatesbetween two CMYK (i.e., four dimensional) color spaces can contain4×174, or 334,084 entries.

It should be understood that the look-up table need not have the samenumber of entries along each dimension. If the look-up table containsN_(k) entries along each respective dimension, where k ranges from 1 tod, the total number of entries in the look-up table can be expressed as$D_{D}{\prod\limits_{k = 1}^{d}\quad{N_{k}.}}$For example, a look-up table that is used to transform color coordinatesbetween two CMYK color spaces and that is to have fifteen entries alongthree dimensions and seventeen entries along one dimension contains4×15×15×15×17, or 229, 500 entries.

In application environments in which it is desirable to further reducecomputational and memory requirements, the device link table builder 502may select only a subset of the total number of entries in eachdimension of the look-up table, perform the method loop calculationsusing that subset, and perform, for example, a spline interpolation tofill in the remaining entries of the look-up table.

The device link table builder 502 provides PCS parameters and sourcedevice coordinates to a source device profile interpreter 504. Thesource device profile interpreter 504 generates source PCS values andprovides the source PCS values and the source device coordinates to anerror reducer 506. In a specific embodiment, the error reducer 506 isimplemented using an error minimization technique. Using the sourcedevice coordinates, the error reducer 506 estimates an initial set ofdestination coordinates that are likely to realize an accurate colormatch with the source device coordinates. This estimation process may beperformed using a relatively simple technique. For example, forestimating destination coordinates in an RGB space corresponding tosource coordinates in a CMYK color space, the estimation process may usethe following equations:C=1−RM=1−GY=1−BAlternatively, the source coordinates can be used to estimate thedestination coordinates if the source and destination imaging systemsuse similar color coordinate spaces.

The error reducer 506 provides the set of estimated destination devicecoordinates to a destination device profile interpreter 508, which alsoreceives the PCS parameters from the device link table builder 502. Thedestination device profile interpreter 508 then generates a set ofdestination PCS values as a function of the estimated destination devicecoordinates and the PCS parameters and provides the destination PCSvalues to the error reducer 506. If the error between the destinationPCS values and the source PCS values is non-zero, the error reducer 506uses an error reduction (e.g., an error minimization) technique toreduce the error between the source and destination PCS values. In oneembodiment, this is implemented by repeatedly querying the destinationdevice profile interpreter 508 with selected estimates of destinationdevice coordinates. This process can continue until destination devicecoordinates are found that satisfy a quality threshold, for example,that yield the minimum error. The error reducer 506 returns thesedestination device coordinates to the device link table builder 502,which enters them in an appropriate location in the look-up table. Thedevice link table builder 502 then enters the next set of table inputentries corresponding to a set of source device color coordinates.

For colors within the gamut of the destination device, the error can bereduced using any of a variety of reduction techniques. For example,Powell's method can be used to perform the error reduction or errorminimization. For additional information regarding Powell's method,reference may be made to William H. Press et al., Numerical Recipes in C(1992), pp. 309-315, available from Cambridge University Press,incorporated herein by reference, and attached hereto as Appendix A.

Using this approach, the error reducer 506 generally defines an errorfunction having input parameters that can be varied by the errorreduction technique. The error reducer 506 then determines the optimalvalues of the input parameters resulting in a minimal error. Todetermine the values of destination device coordinates using the minimumPCS error between the source and destination PCS values, the variableinput parameters are the destination device coordinates. Accordingly, inthis specific implementation, the error reducer 506 defines the errorfunction as:Error(D)=ΔE(R _(s) ,R _(d)(D))where D is a vector defined by the destination device coordinates, R_(s)is a vector defined by the source PCS values and R_(d)(D) is a vectorfunction producing destination PCS values as a function of thedestination coordinate vector D, and ΔE is the Euclidean distance errorbetween R_(s) and R_(d)(D). The Euclidean distance error may beexpressed using the following equation:ΔE(R ₁ ,R ₂)=√{square root over ((L ₁ −L ₂)²+(a ₁ −a ₂)²+(b ₁ −b ₂)²)}

The above equation assumes that the PCS is implemented as the CIELABcolor space. It should be understood, however, that other color spacesmay be used as a PCS. For example, one color space that is particularlysuited for use as a PCS is described in the previously-referencedcopending U.S. patent application Ser. No. 08/884,411 now U.S. Pat. No.6,108,442, entitled “Characterization of Color Imaging Systems.”

Using this same approach, a non-zero optimal error indicates that thesource device is out of gamut relative to the destination device at thatlocation in the PCS. In such situations, the error reducer 506optionally uses the destination device coordinates that result in aminimum ΔE value. Alternatively, the error reducer 506 may use thesevalues as an initial estimate and recalculate the optimal destinationdevice coordinates using a new error function that employs weightingfactors, polar coordinates in the chromatic plane of the PCS space, orboth.

The error reducer 506 optionally uses a gamut mapping parameter receivedfrom the device link table builder 502 to decide how to map coordinatesthat are out of gamut relative to the source device. For example, thegamut mapping parameter may specify modes in which each technique isused for obtaining destination device coordinates. One mode, forexample, may use lightness, chroma, and hue values L*, C*, and h*instead of LAB values L*, a*, and b*, where:√{square root over ((a*²+b*²))}h*=C*·ARC TAN(b*/a*).Another mode uses the above lightness, chroma, and hue values as well asweighting factors: $\begin{matrix}{{{Error}\quad(D)} = {\Delta\quad{{EW}( {R_{s},{R_{d}(D)},W} )}}} \\{{\Delta\quad{{EW}( {R_{1},R_{2},W} )}} = \sqrt{{W_{L}( {L_{1} - L_{2}} )}^{2} + {W_{C}( {C_{1} - C_{2}} )}^{2} + {W_{h}( {h_{1} - h_{2}} )}^{2}}}\end{matrix}$where the PCS vectors R_(s), R_(d)(D) are converted to lightness,chroma, and hue values either before or after passing them to the errorfunction.

If the weighting factors are one, the above weighted error reductionfunction ΔEW ( ) is identical to the standard ΔE ( ) error reductionfunction. It should be noted, however, that weighting factors ofW_(L)=3, W_(C),=1, and W_(h)=1.5 yield particularly accurate visualresults. These weighting factors produce an error function that givespriority first to lightness, then to hue, then to chroma. Theseweighting factors can also be provided to the error reducer 506 as gamutmapping parameters by the device link table builder 502.

Creating the device profile link via error reduction of the forwardtransformations of the devices realizes a number of advantages. Forexample, errors in color conversion are limited to those attributable torounding and interpolation. As a result, the cumulative error fromrepeated forward and reverse transformations between the source anddestination device color spaces is substantially reduced. Additionally,the color transformer can select the gamut mapping technique. The colortransformer can rely on the forward transform information and realizeconsistent gamut mapping between device profiles supplied by differentvendors. It should be noted that errors due to interpolation of thedevice profile link decrease as the number of table entries in eachdimension of the look-up table increases toward the maximum number ofgray levels. This error also decreases if a one-dimensional tonereproduction table is used to transform the color values. For additionalinformation regarding the use of a one-dimensional tone reproductiontable, reference is made to U.S. Pat. No. 5,432,906, issued to Gary H.Newman, assigned to Eastman Kodak Company, and incorporated byreference.

Creating the device profile link using error reduction also allowstransformation between CMYK device spaces that maps the tone response ofthe source and destination black (K) channels while maintaining anaccurate match with the L*a*b* data. For transformation from an RGBsource device to a CMYK destination device, the RGB color coordinatesused by the source device lack K channel information. Some conventionalcolor transformation techniques use a process known as gray componentremoval (GCR) to define a relationship between K values and CMY valuesin the reverse transformation (i.e., L*a*b* to CMYK). For example, thereverse transformation may be performed with K initially set to zero.The value of K can then be calculated based on the minimum of the C, M,and Y values. The CMY values can then be recalculated using an algebraiccalculation or using the forward model to obtain the closest value ofL*a*b* input using the new calculated K value. This process involves areverse transformation from L*a*b* color values to CMYK color valueswith a fixed definition of GCR.

This process, however, loses the K channel information or the CMYchannel information during the translation between CMYK color spacesbecause the source color values are transformed to a three-dimensionalintermediary color space during conversion to destination CMYK values.To preserve the K channel information, the error reducer 506 determinesoptimal K values in the destination color space that correspond to the Kvalues in the source device color space, e.g., values between 0 and 255.These values can be created, for example, by generating a series ofsource K values ranging from minimum to maximum, fixing the source anddestination CMY values at 0, and finding destination K values withminimum ΔE error relative to each of the source K values. These sourceand destination K values can be loaded into a lookup table for quickconversion of source K to destination K values. By using error reductionto determine optimal K values in the destination color space, the devicelink generator 500 preserves K channel information. This results inimproved accuracy of the K channel information when converting colorsbetween CMYK devices.

After loading the source and destination K values into a lookup table,when the error reducer 506 receives source L*a*b* and CMYK values, theerror reducer 506 initially maps the source K channel to the destinationK channel. The error reduction procedure is then used for varying thedestination CMY values to obtain the best match for the respectiveL*a*b* values. If ΔE=0, control returns to the device link table builder502, which enters the calculated destination CMYK values into the devicelink table. If ΔE is greater than zero, then the destination CMY valuescorresponding to the destination K value in question are out of gamutrelative to the target L*a*b* values. This may be, for example, becausethe source CMY values corresponding to K=0 result in a color that is outof gamut with the destination device, or because the destination K valuein the particular region of destination CMY color space is either toohigh or too low, i.e., the mixture of K with CMY is such that theresulting color is too dark or too light relative to the targeted L*a*b*value.

To reduce the ΔE error, K can be varied in a controlled way so as toensure both optimal L*a*b* color and optimal matching of the K sourcechannel behavior. This can be performed, for example, by alternatelyfixing the current CMY values while performing error reduction onvariable K values and fixing the K value while performing errorreduction on variable CMY values. When it is determined that neithervarying CMY nor varying K improves the ΔE error, it can be assumed thatthe optimal CMYK values have been determined to satisfy both the colormatching and K channel accuracy criteria. Control then optionallyreturns to the device link table builder 502. While the above discussionassumes that the error reducer 506 performs the mapping between sourceand destination K values, it should be understood that the device linktable builder 502 can perform the mapping.

It should be understood that other approaches can be used to improve theaccuracy of the K channel information. For example, the PCS can beimplemented as a color space having the same number of dimensions, e.g.,four, as CMYK space. Using a PCS having the same dimensionality as thedevice space prevents the loss of color channel information. In aspecific example embodiment, the first three channels of this PCS arethe PCS currently used by the system (e.g., LAB, L*a*b*, or XYZ). Thefourth channel indicates a PCS value indicative of the black channel orrelating to the black channel (e.g., L* or tristimulus value Y). Theprocess can be performed in a manner similar to that performed by theICC specification as in, for example, ColorSync 2.1 available from AppleComputer.

FIG. 6 illustrates an example color transformation method 600 accordingto the present invention. At a block 602, selected source device colorcoordinates are mapped to a PCS. Destination device color coordinatesare then estimated as a function of the source device color coordinates,as depicted at a block 604. These estimated destination device colorcoordinates are then mapped to the PCS at a block 606.

At a block 608, an error between the PCS values corresponding to thesource and destination device color coordinates is determined. At adecision block 610, the method determines whether the error satisfies aquality criterion, such as error minimization. In certain applications,the quality criterion can be defined as reduction of the error below athreshold value. If the error does not satisfy the quality criterion,flow proceeds to a block 612, at which the estimated destination devicecolor coordinates are adjusted to reduce the error. This process repeatsuntil the error is reduced.

After the error is reduced, flow proceeds to a block 614, at which theoptimal destination device color coordinates thus obtained are enteredinto a color map. Next, the method determines whether the color map isfilled, as depicted at a decision block 616. If the color map containsempty entries, flow proceeds to a block 618. New source device colorcoordinates are then selected, and then flow returns to the block 602.This process continues until the color map is filled. The color map canthen be stored as, for example, a data file for future reference. Theuser can specify the desired source, destination, and intermediateprofiles and the user preferences used to generate the device profilelink. Upon recognizing that a color map has already been developed for aparticular combination of these profiles, the system can load the datafile. Loading the data file instead of reconstructing the color mapsaves computation time and other resources.

The device profile link can be generated each time the user requests anew combination of device profiles. Alternatively, the user can specifyin advance a series of source, intermediate, and destination profilesand allow the system to preprocess these lists of profiles into theirrespective device profile links and store them. When the user requeststhat a particular transform be performed on image data using apreviously defined combination of source, intermediate, and destinationprofiles, the system retrieves the associated device profile link.Retrieving the device profile link improves the processing speed.

While the above discussion has assumed that the device profile linkdescribes a conversion between two device profiles, it should beunderstood that the device profile link can be used to describe aconversion between any number of device profiles. For example, N deviceprofiles can be concatenated using a single device profile link. Toconcatenate the device profiles, the color conversion is performed usingthe PCS to convert colors between each device profile to beconcatenated. Performing error reduction on the forward transformsbetween the individual device profiles improves the accuracy of theconcatenated device profile link between the first and nth deviceprofiles.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the invention.Those skilled in the art will readily recognize various modificationsand changes that may be made to the present invention without strictlyfollowing the example embodiments and applications illustrated anddescribed herein, and without departing from the true spirit and scopeof the present invention, which is set forth in the following claims.

1. A method for performing color conversion, comprising: configuring acolor transformer to perform black point scaling when converting imagedata from a source device to a destination device.
 2. A method asdefined in claim 1, further comprising: determining the amount of blackpoint scaling performed based on a media which the image data will beprinted on.
 3. A method as defined in claim 1, further comprising.providing 100% black point scaling when the destination device comprisesa display monitor.
 4. A method as defined in claim 1, wherein the colortransformer receives color coordinates from the source device andtransforms them using a color map.
 5. A method as defined in claim 4,wherein when the color transformer transforms the color coordinates fromthe source device using the color map the color transformer producescolor coordinates that are used by the destination device.
 6. A methodfor performing black point adjustment while performing color managementconversions, comprising: determining a device independent blackreference vector for a device that corresponds to a predetermined set ofdevice dependent values for that device; converting the device dependentvalues to device independent data; and adjusting the device independentdata based on the device independent black reference vector.
 7. A methodfor performing black point adjustment while performing color managementconversions, comprising: extracting black point information from atleast one device profile; and applying the black point information to adevice independent color space when converting image data from a sourcedevice color space to a destination device color space.